package com.ruoyi.yf.ITest;

import lombok.Data;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.PastOrPresent;
import javax.validation.constraints.Pattern;
import java.util.Date;


/**
 * @AssertFalse 所注解的元素必须是Boolean类型，且值为false
 * @AssertTrue 所注解的元素必须是Boolean类型，且值为true
 * @DecimalMax 所注解的元素必须是数字，且值小于等于给定的值
 * @DecimalMin 所注解的元素必须是数字，且值大于等于给定的值
 * @Digits 所注解的元素必须是数字，且值必须是指定的位数
 * @Future 所注解的元素必须是将来某个日期
 * @Max 所注解的元素必须是数字，且值小于等于给定的值
 * @Min 所注解的元素必须是数字，且值小于等于给定的值
 * @Range 所注解的元素需在指定范围区间内
 * @NotNull 所注解的元素值不能为null
 * @NotBlank 所注解的元素值有内容
 * @Null 所注解的元素值为null
 * @Past 所注解的元素必须是某个过去的日期
 * @PastOrPresent 所注解的元素必须是过去某个或现在日期
 * @Pattern 所注解的元素必须满足给定的正则表达式
 * @Size 所注解的元素必须是String、集合或数组，且长度大小需保证在给定范围之内
 * @Email 所注解的元素需满足Email格式
 * 8195ff08-abb3-4228-aab6-cc5ce34f3284
 */
@Data
public class MedicalWaste {
    /**
     * 医废条码
     */
//    @Pattern(regexp = "^\\d{18,20}$", message = "请检查<codeid>格式错误")
    @NotNull(message = "<codeid>字段不能为空")
    private String codeid;
    /**
     * 系统分配的医院暂存点编码
     */
//    @Pattern(regexp = "^\\d{18,20}$", message = "前检查<stagingId>格式错误")
    @NotNull(message = "<stagingId>字段不能为空")
    private String stagingId;
    /**
     * 医废袋数
     */
    @Min(value = 1,message = "<bag>字段不能小于1")
    @NotNull(message = "<bag>字段不能为空")
    @Pattern(regexp = "^\\d+$", message = "<bag>格式错误")
    private String bag;
    /**
     * 收集人id
     */
    @NotNull(message = "<collectUserId>字段不能为空")
    private String collectUserId;
    /**
     * 收集人姓名RestControllerAdvice
     */
    @NotNull(message = "<collectUserName>字段不能为空")
    private String collectUserName;
    /**
     * 收集时间
     */
    @NotNull(message = "<collectUpdateDate>字段不能为空")
    private String collectUpdateDate;
    /**
     * 标准科室代码
     */
    @Pattern(regexp = "^A\\d{2,4}$", message = "请检查<standardDeptCode>格式错误")
    @NotNull(message = "<standardDeptCode>字段不能为空")
    private String standardDeptCode;
    /**
     * 医院实际科室代码
     */
    @NotNull(message = "<sourceDeptId>字段不能为空")
    private String sourceDeptId;
    /**
     * 医院实际科室名称
     */
    @NotNull(message = "<sourceDeptName>字段不能为空")
    private String sourceDeptName;
    /**
     * 医废类型
     */
//    @Pattern(regexp =  "[1-2][1-6]", message = "请检查<trashType>医废类型代码")
    @Pattern(regexp =  "[1-6]", message = "请检查<trashType>医废类型代码")
    private String trashType;

    /**
     * 医废重量 最多保留两位小数
     */
    @Pattern(regexp =  "(^[1-9](\\d+)?(\\.\\d{1,2})?$)|(^[1-9]$)|(^\\d\\.[1-9]{1,2}$)|(^\\d\\.[0]{1}[1-9]{1}$|(^\\d\\.[1-9]{1}[0]{1}$)$)", message = "请检查<weight>格式错误")
    @NotNull(message = "<weight>字段不能为空")
    private String weight;
    /**
     * 入库人id
     */
    private String intoUserId;
    /**
     * 入库人姓名
     */
    private String intoUserName;
    /**
     * 入库时间
     */
    private String intoDate;
    /**
     * 出库用户id
     */
    private String outUserId;
    /**
     * 出库人姓名
     */
    private String outUserName;
    /**
     * 出库时间
     */
    private String outDate;
    /**
     * 医废状态
     * 收集：10
     * 入库：20
     * 出库：30
     */
    @Pattern(regexp = "10|20|30",message = "请检查医废状态")
    private String trashStatus;
}
